import asyncio
from langchain.agents import create_agent
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI


async def main():
    """
    主异步函数，用于构建AI助手并执行路线规划任务。

    该函数完成以下主要步骤：
    1. 初始化DeepSeek大语言模型客户端
    2. 配置高德地图MCP客户端及工具
    3. 创建集成语言模型和工具的Agent
    4. 执行用户请求的路线规划任务并输出结果

    参数:
        无

    返回值:
        无
    """
    # 构建deepseek大模型客户端
    llm = ChatOpenAI(
        model="deepseek-chat",
        base_url="https://api.deepseek.com/v1",
        openai_api_key="sk-ddad02a64c4c47ea9f6f526ef47cb602",
    )

    # 配置多服务器MCP客户端，当前启用高德地图AMAP-SSE服务
    client = MultiServerMCPClient(
        {
            "12306-mcp": {
                "url": "https://mcp.api-inference.modelscope.net/e0dadb4b026246/sse",
                "transport": "sse"
            }
        }
    )

    # 获取MCP客户端提供的可用工具列表
    tools = await client.get_tools()

    # 创建React Agent，集成语言模型和工具函数
    agent = create_agent(
        model=llm,
        tools=tools,
    )

    # 调用agent执行用户请求的自驾路线规划任务
    response = await agent.ainvoke(
        {"messages": [{"role": "user", "content": "今天下午长沙南站到武汉东站列表信息。"}]}
    )
    print(response)


# 运行主异步函数
if __name__ == "__main__":
    asyncio.run(main())
